package com.jrx.anytxn.param.service.partner;

import com.jrx.anytxn.common.exception.TxnBizException;
import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.i18n.response.TxnPage;
import com.jrx.anytxn.param.dto.partner.PmMerchantTableReq;
import com.jrx.anytxn.param.dto.partner.PmMerchantTableRes;
import com.jrx.anytxn.param.entity.PmMerchantTable;
import java.util.List;

/**
 * 商户service
 *
 * @author : zhenghaopu
 * 2020/2/24
 */
public interface IPmMerchantTableService {
    /**
     * 通过商户ID和租户ID查询
     * @param tenantId
     * @param merchantId
     * @return
     * @throws TxnBizException
     */
    PmMerchantTableRes getByTenIdIdAndMerchanId(String tenantId, String merchantId) throws TxnBizException;

    /**
     * 添加商户信息
     * @param pmMerchantTableReq
     * @return
     * @throws TxnBizException
     */
    PmMerchantTableRes addMerchantTable(PmMerchantTableReq pmMerchantTableReq) throws TxnBizException;

    /**
     * 根据租户ID分页查询商户信息
     *
     * @param pageNum  页码
     * @param pageSize 页大小
     * @param tenantId 租户ID
     * @return TxnPage<PmPartnerInfoRes>
     */
    TxnPage<PmMerchantTableRes> findAllPageByTenantId(Integer pageNum, Integer pageSize, String tenantId) throws TxnBizException;

    /**
     * 根据租户ID和商户编号修改
     * @param pmMerchantTableReq
     * @return
     * @throws TxnBizException
     */
    PmMerchantTableRes modifyPmMerchantTable(PmMerchantTableReq pmMerchantTableReq) throws TxnBizException;

    /**
     * 根据租户ID和商户编号删除信息
     * @param tenantId
     * @param merchantId
     * @return
     * @throws TxnBizException
     */
    Boolean removeByTenantIdAndMerchantId(String tenantId, String merchantId) throws TxnBizException;

    /**
     * 通过商户ID和租户ID查询
     * 供api接口使用 页面调用不可使用该方法
     *
     * @param tenantId
     * @param merchantId
     * @return
     * @throws TxnBizException
     */
    PmMerchantTable getByMerchanId(String tenantId, String merchantId) throws TxnBizException;

    /**
     * 通过租户ID查询
     * @param tenantId
     * @return
     * @throws TxnException
     */
    List<PmMerchantTableRes> findAllByTenantId(String tenantId) throws TxnException;
}
